home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / tex / texsrc.arc / TEX0.C < prev    next >
C/C++ Source or Header  |  1988-09-14  |  48KB  |  2,068 lines

  1. overlay "tex0"
  2. #define EXTERN extern
  3. #include "texd.h"
  4.  
  5. initialize () { r_initialize 
  6.   quarterword i ; 
  7.   integer k ; 
  8.   hyphpointer z ; 
  9.   xchr [ 32 ] = ' ' ; 
  10.   xchr [ 33 ] = '!' ; 
  11.   xchr [ 34 ] = '"' ; 
  12.   xchr [ 35 ] = '#' ; 
  13.   xchr [ 36 ] = '$' ; 
  14.   xchr [ 37 ] = '%' ; 
  15.   xchr [ 38 ] = '&' ; 
  16.   xchr [ 39 ] = '\'' ; 
  17.   xchr [ 40 ] = '(' ; 
  18.   xchr [ 41 ] = ')' ; 
  19.   xchr [ 42 ] = '*' ; 
  20.   xchr [ 43 ] = '+' ; 
  21.   xchr [ 44 ] = ',' ; 
  22.   xchr [ 45 ] = '-' ; 
  23.   xchr [ 46 ] = '.' ; 
  24.   xchr [ 47 ] = '/' ; 
  25.   xchr [ 48 ] = '0' ; 
  26.   xchr [ 49 ] = '1' ; 
  27.   xchr [ 50 ] = '2' ; 
  28.   xchr [ 51 ] = '3' ; 
  29.   xchr [ 52 ] = '4' ; 
  30.   xchr [ 53 ] = '5' ; 
  31.   xchr [ 54 ] = '6' ; 
  32.   xchr [ 55 ] = '7' ; 
  33.   xchr [ 56 ] = '8' ; 
  34.   xchr [ 57 ] = '9' ; 
  35.   xchr [ 58 ] = ':' ; 
  36.   xchr [ 59 ] = ';' ; 
  37.   xchr [ 60 ] = '<' ; 
  38.   xchr [ 61 ] = '=' ; 
  39.   xchr [ 62 ] = '>' ; 
  40.   xchr [ 63 ] = '?' ; 
  41.   xchr [ 64 ] = '@' ; 
  42.   xchr [ 65 ] = 'A' ; 
  43.   xchr [ 66 ] = 'B' ; 
  44.   xchr [ 67 ] = 'C' ; 
  45.   xchr [ 68 ] = 'D' ; 
  46.   xchr [ 69 ] = 'E' ; 
  47.   xchr [ 70 ] = 'F' ; 
  48.   xchr [ 71 ] = 'G' ; 
  49.   xchr [ 72 ] = 'H' ; 
  50.   xchr [ 73 ] = 'I' ; 
  51.   xchr [ 74 ] = 'J' ; 
  52.   xchr [ 75 ] = 'K' ; 
  53.   xchr [ 76 ] = 'L' ; 
  54.   xchr [ 77 ] = 'M' ; 
  55.   xchr [ 78 ] = 'N' ; 
  56.   xchr [ 79 ] = 'O' ; 
  57.   xchr [ 80 ] = 'P' ; 
  58.   xchr [ 81 ] = 'Q' ; 
  59.   xchr [ 82 ] = 'R' ; 
  60.   xchr [ 83 ] = 'S' ; 
  61.   xchr [ 84 ] = 'T' ; 
  62.   xchr [ 85 ] = 'U' ; 
  63.   xchr [ 86 ] = 'V' ; 
  64.   xchr [ 87 ] = 'W' ; 
  65.   xchr [ 88 ] = 'X' ; 
  66.   xchr [ 89 ] = 'Y' ; 
  67.   xchr [ 90 ] = 'Z' ; 
  68.   xchr [ 91 ] = '[' ; 
  69.   xchr [ 92 ] = '\\' ; 
  70.   xchr [ 93 ] = ']' ; 
  71.   xchr [ 94 ] = '^' ; 
  72.   xchr [ 95 ] = '_' ; 
  73.   xchr [ 96 ] = '`' ; 
  74.   xchr [ 97 ] = 'a' ; 
  75.   xchr [ 98 ] = 'b' ; 
  76.   xchr [ 99 ] = 'c' ; 
  77.   xchr [ 100 ] = 'd' ; 
  78.   xchr [ 101 ] = 'e' ; 
  79.   xchr [ 102 ] = 'f' ; 
  80.   xchr [ 103 ] = 'g' ; 
  81.   xchr [ 104 ] = 'h' ; 
  82.   xchr [ 105 ] = 'i' ; 
  83.   xchr [ 106 ] = 'j' ; 
  84.   xchr [ 107 ] = 'k' ; 
  85.   xchr [ 108 ] = 'l' ; 
  86.   xchr [ 109 ] = 'm' ; 
  87.   xchr [ 110 ] = 'n' ; 
  88.   xchr [ 111 ] = 'o' ; 
  89.   xchr [ 112 ] = 'p' ; 
  90.   xchr [ 113 ] = 'q' ; 
  91.   xchr [ 114 ] = 'r' ; 
  92.   xchr [ 115 ] = 's' ; 
  93.   xchr [ 116 ] = 't' ; 
  94.   xchr [ 117 ] = 'u' ; 
  95.   xchr [ 118 ] = 'v' ; 
  96.   xchr [ 119 ] = 'w' ; 
  97.   xchr [ 120 ] = 'x' ; 
  98.   xchr [ 121 ] = 'y' ; 
  99.   xchr [ 122 ] = 'z' ; 
  100.   xchr [ 123 ] = '{' ; 
  101.   xchr [ 124 ] = '|' ; 
  102.   xchr [ 125 ] = '}' ; 
  103.   xchr [ 126 ] = '~' ; 
  104.   xchr [ 0 ] = ' ' ; 
  105.   xchr [ 127 ] = ' ' ; 
  106.   for ( i = 1 ; i <= 31 ; i ++ ) 
  107.   xchr [ i ] = chr ( i ) ; 
  108.   for ( i = 0 ; i <= 127 ; i ++ ) 
  109.   xord [ chr ( i ) ] = 127 ; 
  110.   for ( i = 1 ; i <= 126 ; i ++ ) 
  111.   xord [ xchr [ i ] ] = i ; 
  112.   interaction = 3 ; 
  113.   deletionsall = true ; 
  114.   errorcount = 0 ; 
  115.   helpptr = 0 ; 
  116.   useerrhelp = false ; 
  117.   interrupt = 0 ; 
  118.   OKtointerrup = true ; 
  119.  
  120. #ifdef DEBUG
  121.   wasmemend = memmin ; 
  122.   waslomax = memmin ; 
  123.   washimin = memmax ; 
  124.   panicking = false ; 
  125. #endif /* DEBUG */
  126.   nestptr = 0 ; 
  127.   maxneststack = 0 ; 
  128.   curlist .modefield = 1 ; 
  129.   curlist .headfield = memtop - 1 ; 
  130.   curlist .tailfield = memtop - 1 ; 
  131.   curlist .auxfield = - 65536000 ; 
  132.   curlist .mlfield = 0 ; 
  133.   curlist .pgfield = 0 ; 
  134.   shownmode = 0 ; 
  135.   pagecontents = 0 ; 
  136.   pagetail = memtop - 2 ; 
  137.   mem [(long) memtop - 2 ] .hh .v.RH = 0 ; 
  138.   lastglue = 65535L ; 
  139.   lastpenalty = 0 ; 
  140.   lastkern = 0 ; 
  141.   pagesofar [ 7 ] = 0 ; 
  142.   pagemaxdepth = 0 ; 
  143.   for ( k = 5267 ; k <= 5976 ; k ++ ) 
  144.   xeqlevel [ k ] = 1 ; 
  145.   nonewcontrol = true ; 
  146.   hash [ 258 ] .v.LH = 0 ; 
  147.   hash [ 258 ] .v.RH = 0 ; 
  148.   for ( k = 259 ; k <= 3524 ; k ++ ) 
  149.   hash [ k ] = hash [ 258 ] ; 
  150.   saveptr = 0 ; 
  151.   curlevel = 1 ; 
  152.   curgroup = 0 ; 
  153.   curboundary = 0 ; 
  154.   maxsavestack = 0 ; 
  155.   magset = 0 ; 
  156.   curmark [ 0 ] = 0 ; 
  157.   curmark [ 1 ] = 0 ; 
  158.   curmark [ 2 ] = 0 ; 
  159.   curmark [ 3 ] = 0 ; 
  160.   curmark [ 4 ] = 0 ; 
  161.   curval = 0 ; 
  162.   curvallevel = 0 ; 
  163.   radix = 0 ; 
  164.   for ( k = 0 ; k <= 16 ; k ++ ) 
  165.   readopen [ k ] = 2 ; 
  166.   condptr = 0 ; 
  167.   iflimit = 0 ; 
  168.   curif = 0 ; 
  169.   ifline = 0 ; 
  170.   TEXformatdef = " plain.fmt" ; 
  171.   for ( k = 0 ; k <= fontmax ; k ++ ) 
  172.   fontused [ k ] = false ; 
  173.   nullcharacte .b0 = 0 ; 
  174.   nullcharacte .b1 = 0 ; 
  175.   nullcharacte .b2 = 0 ; 
  176.   nullcharacte .b3 = 0 ; 
  177.   totalpages = 0 ; 
  178.   maxv = 0 ; 
  179.   maxh = 0 ; 
  180.   maxpush = 0 ; 
  181.   lastbop = - 1 ; 
  182.   doingleaders = false ; 
  183.   deadcycles = 0 ; 
  184.   curs = - 1 ; 
  185.   halfbuf = dvibufsize / 2 ; 
  186.   dvilimit = dvibufsize ; 
  187.   dviptr = 0 ; 
  188.   dvioffset = 0 ; 
  189.   dvigone = 0 ; 
  190.   downptr = 0 ; 
  191.   rightptr = 0 ; 
  192.   adjusttail = 0 ; 
  193.   packbeginlin = 0 ; 
  194.   emptyfield .v.RH = 0 ; 
  195.   emptyfield .v.LH = 0 ; 
  196.   nulldelimite .b0 = 0 ; 
  197.   nulldelimite .b1 = 0 ; 
  198.   nulldelimite .b2 = 0 ; 
  199.   nulldelimite .b3 = 0 ; 
  200.   alignptr = 0 ; 
  201.   curalign = 0 ; 
  202.   curspan = 0 ; 
  203.   curloop = 0 ; 
  204.   curhead = 0 ; 
  205.   curtail = 0 ; 
  206.   for ( z = 0 ; z <= 307 ; z ++ ) 
  207.   {
  208.     hyphword [ z ] = 0 ; 
  209.     hyphlist [ z ] = 0 ; 
  210.   } 
  211.   hyphcount = 0 ; 
  212.   outputactive = false ; 
  213.   insertpenalt = 0 ; 
  214.   aftertoken = 0 ; 
  215.   longhelpseen = false ; 
  216.   formatident = 0 ; 
  217.   for ( k = 0 ; k <= 17 ; k ++ ) 
  218.   writeopen [ k ] = false ; 
  219.   editnamestar = 0 ; 
  220.  
  221. #ifdef INITEX
  222.   for ( k = 1 ; k <= 19 ; k ++ ) 
  223.   mem [(long) k ] .cint = 0 ; 
  224.   k = 0 ; 
  225.   while ( k <= 19 ) { 
  226.     mem [(long) k ] .hh .v.RH = 1 ; 
  227.     mem [(long) k ] .hh.b0 = 0 ; 
  228.     mem [(long) k ] .hh.b1 = 0 ; 
  229.     k = k + 4 ; 
  230.   } 
  231.   mem [(long) 6 ] .cint = 65536L ; 
  232.   mem [(long) 4 ] .hh.b0 = 1 ; 
  233.   mem [(long) 10 ] .cint = 65536L ; 
  234.   mem [(long) 8 ] .hh.b0 = 2 ; 
  235.   mem [(long) 14 ] .cint = 65536L ; 
  236.   mem [(long) 12 ] .hh.b0 = 1 ; 
  237.   mem [(long) 15 ] .cint = 65536L ; 
  238.   mem [(long) 12 ] .hh.b1 = 1 ; 
  239.   mem [(long) 18 ] .cint = - 65536L ; 
  240.   mem [(long) 16 ] .hh.b0 = 1 ; 
  241.   rover = 20 ; 
  242.   mem [(long) rover ] .hh .v.RH = 65535L ; 
  243.   mem [(long) rover ] .hh .v.LH = 1000 ; 
  244.   mem [(long) rover + 1 ] .hh .v.LH = rover ; 
  245.   mem [(long) rover + 1 ] .hh .v.RH = rover ; 
  246.   lomemmax = rover + 1000 ; 
  247.   mem [(long) lomemmax ] .hh .v.RH = 0 ; 
  248.   mem [(long) lomemmax ] .hh .v.LH = 0 ; 
  249.   for ( k = memtop - 13 ; k <= memtop ; k ++ ) 
  250.   mem [(long) k ] = mem [(long) lomemmax ] ; 
  251.   mem [(long) memtop - 10 ] .hh .v.LH = 7359 ; 
  252.   mem [(long) memtop - 9 ] .hh .v.RH = 256 ; 
  253.   mem [(long) memtop - 9 ] .hh .v.LH = 0 ; 
  254.   mem [(long) memtop - 7 ] .hh.b0 = 1 ; 
  255.   mem [(long) memtop - 6 ] .hh .v.LH = 65535L ; 
  256.   mem [(long) memtop - 7 ] .hh.b1 = 0 ; 
  257.   mem [(long) memtop ] .hh.b1 = 255 ; 
  258.   mem [(long) memtop ] .hh.b0 = 1 ; 
  259.   mem [(long) memtop ] .hh .v.RH = memtop ; 
  260.   mem [(long) memtop - 2 ] .hh.b0 = 10 ; 
  261.   mem [(long) memtop - 2 ] .hh.b1 = 0 ; 
  262.   avail = 0 ; 
  263.   memend = memtop ; 
  264.   himemmin = memtop - 13 ; 
  265.   varused = 20 ; 
  266.   dynused = 14 ; 
  267.   eqtb [ 3525 ] .hh.b0 = 100 ; 
  268.   eqtb [ 3525 ] .hh .v.RH = 0 ; 
  269.   eqtb [ 3525 ] .hh.b1 = 0 ; 
  270.   for ( k = 1 ; k <= 3524 ; k ++ ) 
  271.   eqtb [ k ] = eqtb [ 3525 ] ; 
  272.   eqtb [ 3526 ] .hh .v.RH = 0 ; 
  273.   eqtb [ 3526 ] .hh.b1 = 1 ; 
  274.   eqtb [ 3526 ] .hh.b0 = 116 ; 
  275.   for ( k = 3527 ; k <= 4055 ; k ++ ) 
  276.   eqtb [ k ] = eqtb [ 3526 ] ; 
  277.   mem [(long) 0 ] .hh .v.RH = mem [(long) 0 ] .hh .v.RH + 530 ; 
  278.   eqtb [ 4056 ] .hh .v.RH = 0 ; 
  279.   eqtb [ 4056 ] .hh.b0 = 117 ; 
  280.   eqtb [ 4056 ] .hh.b1 = 1 ; 
  281.   for ( k = 4057 ; k <= 4321 ; k ++ ) 
  282.   eqtb [ k ] = eqtb [ 3525 ] ; 
  283.   eqtb [ 4322 ] .hh .v.RH = 0 ; 
  284.   eqtb [ 4322 ] .hh.b0 = 118 ; 
  285.   eqtb [ 4322 ] .hh.b1 = 1 ; 
  286.   for ( k = 4323 ; k <= 4577 ; k ++ ) 
  287.   eqtb [ k ] = eqtb [ 4322 ] ; 
  288.   eqtb [ 4578 ] .hh .v.RH = 0 ; 
  289.   eqtb [ 4578 ] .hh.b0 = 119 ; 
  290.   eqtb [ 4578 ] .hh.b1 = 1 ; 
  291.   for ( k = 4579 ; k <= 4626 ; k ++ ) 
  292.   eqtb [ k ] = eqtb [ 4578 ] ; 
  293.   eqtb [ 4627 ] .hh .v.RH = 0 ; 
  294.   eqtb [ 4627 ] .hh.b0 = 119 ; 
  295.   eqtb [ 4627 ] .hh.b1 = 1 ; 
  296.   for ( k = 4628 ; k <= 5266 ; k ++ ) 
  297.   eqtb [ k ] = eqtb [ 4627 ] ; 
  298.   for ( k = 0 ; k <= 127 ; k ++ ) 
  299.   {
  300.     eqtb [ 4627 + k ] .hh .v.RH = 12 ; 
  301.     eqtb [ 5139 + k ] .hh .v.RH = k ; 
  302.     eqtb [ 5011 + k ] .hh .v.RH = 1000 ; 
  303.   } 
  304.   eqtb [ 4640 ] .hh .v.RH = 5 ; 
  305.   eqtb [ 4659 ] .hh .v.